// pages/dailyperformance/template/template.js
import http from '../../../utils/request.js';

Page({
  data: {
    isEditMode: false, // 是否为编辑模式
    templateId: null,  // 编辑模式下的模板ID
    templateData: {
      template_name: '',
      is_default: false,
      template_data: {
        items: [
          {
            id: Math.floor(Math.random() * 1000000) + 1, // 随机生成ID
            product_name: '',
            unit: ''
          }
        ]
      }
    }
  },
  
  onLoad(options) {
    // 检查是否编辑模式
    if (options.template_id) {
      this.setData({
        isEditMode: true,
        templateId: parseInt(options.template_id)
      }, () => {
        this.loadTemplateData();
      });
    }
  },

  // 加载模板数据（编辑模式）
  async loadTemplateData() {
    try {
      wx.showLoading({ title: '加载中...' });
      const res = await http.get(`/performance_templates/${this.data.templateId}`);
      
      if (res.status === 'success') {
        this.setData({
          templateData: {
            template_name: res.data.template_name,
            is_default: res.data.is_default,
            template_data: {
              items: res.data.template_data.items
            }
          }
        });
      } else {
        wx.showToast({ title: '加载模板失败', icon: 'none' });
      }
    } catch (error) {
      wx.showToast({ title: '网络错误', icon: 'none' });
    } finally {
      wx.hideLoading();
    }
  },

  // 模板名称输入
  onTemplateNameInput(e) {
    this.setData({
      'templateData.template_name': e.detail.value
    });
  },

  // 添加业绩项
  addItem() {
    const newItems = [...this.data.templateData.template_data.items, {
      id: Math.floor(Math.random() * 1000000) + 1, // 新增项也生成ID
      product_name: '',
      unit: ''
    }];
    
    this.setData({
      'templateData.template_data.items': newItems
    });
  },

  // 删除业绩项
  deleteItem(e) {
    const index = e.currentTarget.dataset.index;
    const items = [...this.data.templateData.template_data.items];
    
    if (items.length > 1) {
      items.splice(index, 1);
      this.setData({
        'templateData.template_data.items': items
      });
    } else {
      wx.showToast({
        title: '至少保留一个业绩项',
        icon: 'none'
      });
    }
  },

  // 业绩项输入处理
  onItemInput(e) {
    const { index, field } = e.currentTarget.dataset;
    const value = e.detail.value;
    const path = `templateData.template_data.items[${index}].${field}`;
    
    this.setData({
      [path]: value
    });
  },

  // 默认模板切换
  onDefaultChange(e) {
    this.setData({
      'templateData.is_default': e.detail.value
    });
  },

  // 保存模板
  async saveTemplate() {
    const { templateData, isEditMode, templateId } = this.data;
    
    // 验证模板名称
    if (!templateData.template_name.trim()) {
      wx.showToast({
        title: '请输入模板名称',
        icon: 'none'
      });
      return;
    }
    
    // 验证业绩项
    const invalidItems = [];
    templateData.template_data.items.forEach((item, index) => {
      if (!item.product_name.trim()) {
        invalidItems.push(`第${index + 1}项的产品名称`);
      }
      if (!item.unit.trim()) {
        invalidItems.push(`第${index + 1}项的单位`);
      }
    });
    
    if (invalidItems.length > 0) {
      wx.showToast({
        title: `请完善：${invalidItems.join('、')}`,
        icon: 'none',
        duration: 3000
      });
      return;
    }
    
    try {
      wx.showLoading({ title: '保存中...' });
      
      // 准备请求数据（确保包含ID字段）
      const payload = {
        template_name: templateData.template_name,
        template_data: templateData.template_data,
        is_default: templateData.is_default
      };
      
      let res;
      
      if (isEditMode) {
        // 编辑模式：更新模板
        res = await http.put(`/performance_templates/${templateId}`, payload);
      } else {
        // 新建模式：创建模板
        res = await http.post('/performance_templates', payload);
      }
      
      if (res.status === 'success') {
        wx.showToast({
          title: '模板保存成功',
          icon: 'success'
        });
        
        // 返回上一页
        setTimeout(() => {
          const pages = getCurrentPages();
          if (pages.length > 1) {
            const prevPage = pages[pages.length - 2];
            // 如果是首页，刷新模板列表
            if (prevPage.route === 'pages/dailyperformance/dailyperformance') {
              prevPage.onLoad();
            }
          }
          wx.navigateBack();
        }, 1500);
      } else {
        wx.showToast({
          title: res.message || '保存失败',
          icon: 'none'
        });
      }
    } catch (error) {
      wx.showToast({
        title: '保存失败',
        icon: 'none'
      });
      console.error('保存模板失败:', error);
    } finally {
      wx.hideLoading();
    }
  },

  // 返回上一页
  goBack() {
    wx.navigateBack();
  }
});